from tkinter import *
from random import randint


def get_entry_value():
    global secret_number
    global answer_entry
    global answer_button
    global tries_count
    global gameplay_text
    global gameplay_label
    global in_game
    answer_value = answer_entry.get()
    try:
        answer_value = int(answer_value)
        tries_count += 1
    except ValueError:
        answer_entry.delete(0, END)
        return

    next_try_text = f'Попытка {tries_count}. Введено число: {answer_value:3}\n'
    gameplay_text += next_try_text
    if 'int' in str(type(answer_value)):
        if answer_value > secret_number:
            gameplay_text += 'Загаданное число меньше\n'
        elif answer_value < secret_number:
            gameplay_text += 'Загаданное число больше\n'
        elif answer_value == secret_number:
            gameplay_text += 'Число угадано!!! Поздравляю!!!\n'
            in_game = False
    if tries_count >= 7:
        in_game = False

    if not in_game:
        gameplay_text += 'Игра окончена. Сыграем еще раз?'
        answer_button.config(text='Начать заново', command=reset_game)

    gameplay_label.config(text=gameplay_text)
    answer_entry.delete(0, END)


def reset_game():
    global secret_number
    global answer_entry
    global answer_button
    global tries_count
    global gameplay_text
    global gameplay_label
    global in_game

    secret_number = randint(1, 128)
    tries_count = 0
    in_game = True
    gameplay_text = '-' * 80 + '\n'

    gameplay_label.config(text=gameplay_text)
    answer_button.config(text='Ответ', command=get_entry_value)


main_window = Tk()
main_window.title('Игра Двоичный поиск')
main_window.geometry("640x480")

greeting_text = '''Дорогой друг, мной загадано число в диапазоне от 1 до 128
Попробуй угадать его при помощи двоичного поиска за максимум 7 попыток
Вводи в поле ответа число и нажимай кнопку Ответа.
Текст в поле ответа не рассматривается в качестве ответа.
Я буду давать на каждую попытку свою реакцию: 
Загаданное число больше, меньше или равно введённому:'''
greeting_label = Label(text=greeting_text)
greeting_label.pack()

gameplay_text = '-' * 80 + '\n'
gameplay_label = Label(text=gameplay_text)
gameplay_label.pack()

answer_entry = Entry()
answer_entry.pack()

button_text = 'Ответ'
answer_button = Button(text=button_text, command=get_entry_value)
answer_button.pack()

secret_number = randint(1, 128)
tries_count = 0
in_game = True

main_window.mainloop()
